﻿Imports System
Imports System.ComponentModel
Imports System.Security
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.WebControls
Imports System.ComponentModel.Design
Imports System.Data.SqlClient
Imports System.Drawing
Imports System.Drawing.Design

<Assembly: TagPrefix("Lnc.Web.Social.Facebook.Scripts", "fbs")> 
Namespace Facebook.Scripts

#Region "Controles"

    ''' <summary>
    ''' Script requerido por los controles Facebook para llamar a sus respectivos SDK
    ''' </summary>
    ''' <remarks>
    ''' Para poder utilizar los controles sociales de Facebook, es necesario incluir los siguientes espacios de nombres xml
    ''' en el encabezado de la página:
    ''' 
    ''' xmlns:fb="http://ogp.me/ns/fb#" (Controles Facebook)
    ''' xmlns:og="http://ogp.me/ns#"    (Controles OpenGraph)
    ''' 
    ''' El equipo de LNC Producciones
    ''' </remarks>
    <Designer(GetType(FbSdkScriptDesinger)), _
    Description("Script requerido por los controles Facebook para llamar a sus respectivos SDK"), _
    AspNetHostingPermission( _
    SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal), _
    AspNetHostingPermission( _
    SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal), _
    Utils.ToolboxTabName("LNC.WebControls"), _
    ToolboxData("<{0}:FbSdkScript ID=""FbSdkScript"" runat=""server""></{0}:FbSdkScript>")> _
    <ToolboxBitmap(GetType(ResourceFinder), "FbSdkScript.bmp")> _
    Public Class FbSdkScript
        Inherits WebControl

        Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
            Dim s As String = ""
            s &= vbCrLf
            s &= "<!-- Facebook SDK : Inicio -->" & vbCrLf
            s &= "<!-- Codigo desarrollado por Nelson Ochoa -->" & vbCrLf
            s &= "<!-- Lnc.Web.Social Versión " & My.Application.Info.Version.ToString & " -->" & vbCrLf
            s &= "<div id=""fb-root""></div>" & vbCrLf
            s &= "<script>(function(d, s, id) {" & vbCrLf
            s &= "  var js, fjs = d.getElementsByTagName(s)[0];" & vbCrLf
            s &= "  if(d.getElementById(id)) return;" & vbCrLf
            s &= "  js = d.createElement(s); js.id = id;" & vbCrLf
            s &= "  js.src = ""//connect.facebook.net/es_LA/all.js#xfbml=1&appId=199842536770274"";" & vbCrLf
            s &= "  fjs.parentNode.insertBefore(js, fjs);" & vbCrLf
            s &= "}(document, 'script', 'facebook-jssdk'));</script>" & vbCrLf
            s &= "<!-- Facebook SDK : Final -->" & vbCrLf
            writer.Write(s)
        End Sub

    End Class

    ''' <summary>
    ''' Espacio de nombres requerido por los controles Facebook
    ''' </summary>
    ''' <remarks>
    ''' Para poder utilizar los controles sociales de Facebook, es necesario incluir los siguientes espacios de nombres xml
    ''' en el encabezado de la página:
    ''' 
    ''' xmlns:fb="http://ogp.me/ns/fb#" (Controles Facebook)
    ''' xmlns:og="http://ogp.me/ns#"    (Controles OpenGraph)
    ''' 
    ''' El equipo de LNC Producciones
    ''' </remarks>
    <Designer(GetType(FbSdkScriptDesinger)), _
    Description("Espacio de nombres requerido por los controles Facebook"), _
    AspNetHostingPermission( _
    SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal), _
    AspNetHostingPermission( _
    SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal), _
    Utils.ToolboxTabName("LNC.WebControls"), _
    ToolboxData(" xmlns:fb=""http://ogp.me/ns/fb#""")> _
    <ToolboxBitmap(GetType(ResourceFinder), "FbSdkScript.bmp")> _
    Public Class FbNamespace
        Inherits WebControl

        Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
            writer.Write(" xmlns:fb=""http://ogp.me/ns/fb#""")
        End Sub

    End Class

    ''' <summary>
    ''' Espacio de nombres requerido por los controles OpenGraph
    ''' </summary>
    ''' <remarks>
    ''' Para poder utilizar los controles sociales de Facebook, es necesario incluir los siguientes espacios de nombres xml
    ''' en el encabezado de la página:
    ''' 
    ''' xmlns:fb="http://ogp.me/ns/fb#" (Controles Facebook)
    ''' xmlns:og="http://ogp.me/ns#"    (Controles OpenGraph)
    ''' 
    ''' El equipo de LNC Producciones
    ''' </remarks>
    <Designer(GetType(FbSdkScriptDesinger)), _
    Description("Espacio de nombres requerido por los controles OpenGraph"), _
    AspNetHostingPermission( _
    SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal), _
    AspNetHostingPermission( _
    SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal), _
    Utils.ToolboxTabName("LNC.WebControls"), _
    ToolboxData(" xmlns:og=""http://ogp.me/ns#""")> _
    <ToolboxBitmap(GetType(ResourceFinder), "FbSdkScript.bmp")> _
    Public Class OgNamespace
        Inherits WebControl

        Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
            writer.Write(" xmlns:og=""http://ogp.me/ns#""")
        End Sub

    End Class

#End Region

#Region "Diseñadores"

    Public Class FbSdkScriptDesinger
        Inherits ControlDesigner

        Public Overrides Function GetDesignTimeHtml() As String
            Dim out As String = ""
            out = String.Format("<button style=""color: Black; background-color: #F7F7F7; font-size: 8pt;"">fbs:<strong>FbSdkScript</strong></button>")
            Return out
        End Function

    End Class

#End Region

End Namespace